package se.webbzon.boltzmann.battle.property;

import se.webbzon.boltzmann.battle.strategy.AbstractStrategy;

public interface BattlePropertyListener {
	
	/*============================================================
	Public Methods
	============================================================*/
	
	/** This method is invoked if the maximal health is set for the battle property. **/
	public void onSetMaxHealth(BattleProperty property, int maxHealth);
	
	/** This method is invoked if the health is set for the battle property. **/
	public void onSetHealth(BattleProperty property, int health);
	
	/** This method is invoked if the maximal energy is set for the battle property. **/
	public void onSetMaxEnergy(BattleProperty property, int maxEnergy); 
	
	/** This method is invoked if the energy is set for the battle property. **/
	public void onSetEnergy(BattleProperty property, int energy);
	
	/** This method is invoked if the strategy is set for the battle property. **/
	public void onSetStrategy(BattleProperty property, AbstractStrategy strategy);
	
	/** This method is invoked if a buff is added to the battle property. **/
	public void onBuffAdd(BattleProperty property, BattleBuff buff);
	
	/** This method is invoked if a buff is removed from the battle property. **/
	public void onBuffRemove(BattleProperty property, BattleBuff buff);

}
